02-Target-Group생성
Target Group 생성
Target Group이란?
쉬운 비유
- Target Group = 같은 역할을 하는 직원들의 팀
- 예시: 카페의 바리스타 팀, 캐셔 팀
- ALB: "바리스타 팀 중에 누가 여유 있어?" → 한가한 바리스타에게 주문 전달
실습 목표
현재 있는 Web 서버를 Target Group에 등록해서 ALB가 관리할 수 있게 만들기
Target Group 생성
1단계: Target Group 생성 시작
- EC2 콘솔 → 왼쪽 메뉴 대상 그룹 클릭
- 대상 그룹 생성 버튼 클릭
2단계: 기본 구성
대상 유형 선택:
- 인스턴스 선택 (기본값)
대상 그룹 이름:
webapp-web-targets
프로토콜:
- HTTP 선택
- 포트:
80
VPC:
- 여러분의 VPC 선택 (예: webapp-vpc)
3단계: Health Check 설정 (매우 중요)
Health Check 경로 설정이 잘못되면 서버가 unhealthy로 표시되어 전체 시스템이 동작하지 않습니다.
Health Check 프로토콜:
- HTTP (기본값)
Health Check 경로 선택:
/webapp/(추천) - 전체 스택 동작 확인 (Apache → Tomcat → DB)/webapp/index.html(X) - Apache만 확인, WAS/DB 문제 발견 못함
왜 /webapp/를 써야 할까요?
/webapp/index.html 체크:
ALB → Apache → 정적 파일 반환 (성공)
WAS/DB 문제가 있어도 성공으로 판단
/webapp/ 체크:
ALB → Apache → Tomcat → JSP 처리 → 응답
전체 시스템이 정상일 때만 성공
고급 Health Check 설정:
- 정상 임계값:
2(2번 연속 성공하면 healthy) - 비정상 임계값:
3(3번 연속 실패하면 unhealthy) - 시간 제한:
5초 - 간격:
30초
4단계: 대상 등록
사용 가능한 인스턴스:
- 현재 실행 중인 Web 서버 EC2 인스턴스 찾기
- 체크박스 선택
포트:
80입력
보류 중으로 포함 클릭
5단계: Target Group 생성
대상 그룹 생성 버튼 클릭
생성 확인
Target Group 상태 확인
- 대상 그룹 목록에서
webapp-web-targets클릭 - 대상 탭에서 등록된 인스턴스 확인
- 상태가
healthy가 될 때까지 대기 (2-3분)
Health Check 동작 원리
ALB가 30초마다 체크:
GET http://서버IP:80/webapp/
정상 응답 2번 연속 → healthy
실패 응답 3번 연속 → unhealthy
상태별 의미
Healthy
- 서버가 정상 동작
- Web서버 → WAS서버 → RDS 연결까지 모두 정상
- 트래픽을 받을 수 있는 상태
Unhealthy
- 서버에 문제 있음
- Apache, Tomcat, RDS 연결 중 어딘가 문제
- 트래픽을 받지 않음
Initial
- 아직 Health Check 진행 중
- 첫 체크 결과 기다리는 중
문제 해결
상태가 계속 Unhealthy인 경우
1. Health Check 경로 직접 확인:
# Web 서버에 SSH 접속
ssh -i webapp-keypair.pem ec2-user@Web서버-Public-IP
# Health Check 경로 테스트
curl http://localhost/webapp/
# 200 응답과 JSP 페이지 내용이 나와야 정상
2. Apache 서비스 상태 확인:
sudo systemctl status httpd
sudo systemctl restart httpd # 필요시 재시작
3. WAS 서버 연결 확인:
# WAS 서버와의 연결 테스트
curl http://WAS서버-Private-IP:8080/webapp/
# JSP 페이지가 정상 응답하는지 확인
4. 프록시 설정 확인:
# Apache 프록시 설정 확인
sudo cat /etc/httpd/conf.d/webapp-proxy.conf
# WAS 서버 IP가 올바르게 설정되어 있는지 확인
5. 보안 그룹 확인:
- Web 서버 보안 그룹에 포트 80이 0.0.0.0/0으로 열려있는지 확인
- WAS 서버 보안 그룹에 포트 8080이 Web 서버에서 접근 가능한지 확인
Target Group 활용 팁
Health Check 경로 선택 기준
좋은 선택: /webapp/ (전체 스택 동작 확인)
- Apache → Tomcat → RDS 연결까지 모두 체크
나쁜 선택: /webapp/index.html (정적 파일만 체크)
- Apache만 체크하고 WAS/DB 문제는 발견 못함
여러 서버 관리
현재: Web서버 1대 → Target Group
나중: Web서버 2대 → 같은 Target Group
Health Check 최적화
- 짧은 간격: 빠른 장애 감지, 더 많은 요청
- 긴 간격: 서버 부하 감소, 느린 장애 감지
완료 체크리스트
중요 정보 기록
다음 단계에서 사용할 정보를 기록해두세요:
Target Group 정보:
- 이름:
webapp-web-targets - 프로토콜: HTTP
- 포트: 80
- Health Check:
/webapp/ - 등록된 서버: 기존 Web 서버 1대
Target Group 생성 완료 이제 ALB를 만들어서 연결해봅시다.
관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/02-Application-Load-Balancer/01-ALB개념이해, AWS EDU/Archive/조선대학교 AWS 멘토링/Edu Architecture/README